package cn.iocoder.yudao.module.tms.service.statistics;

import cn.iocoder.yudao.module.tms.controller.admin.statistics.vo.*;

import java.time.LocalDateTime;
import java.util.List;

/**
 * TMS统计分析 Service 接口
 *
 * @author 芋道源码
 */
public interface StatisticsService {

    /**
     * 获取时间范围
     * 
     * @param reqVO 查询参数
     * @return 时间范围数组 [开始时间, 结束时间]
     */
    LocalDateTime[] getTimeRange(StatisticsQueryReqVO reqVO);

    /**
     * 获取Band使用统计
     * 
     * @param reqVO 查询参数
     * @return Band使用统计列表
     */
    List<BandUsageStatisticsVO> getBandUsageStatistics(StatisticsQueryReqVO reqVO);

    /**
     * 获取Band查验统计
     * 
     * @param reqVO 查询参数
     * @return Band查验统计列表
     */
    List<BandInspectionStatisticsVO> getBandInspectionStatistics(StatisticsQueryReqVO reqVO);

    /**
     * 获取订单查验统计
     * 
     * @param reqVO 查询参数
     * @return 订单查验统计列表
     */
    List<OrderInspectionStatisticsVO> getOrderInspectionStatistics(StatisticsQueryReqVO reqVO);

    /**
     * 获取客户合作统计
     * 
     * @param reqVO 查询参数
     * @return 客户合作统计列表
     */
    List<CustomerCooperationStatisticsVO> getCustomerCooperationStatistics(StatisticsQueryReqVO reqVO);

    /**
     * 获取统计概览
     * 
     * @param reqVO 查询参数
     * @return 统计概览
     */
    StatisticsOverviewVO getStatisticsOverview(StatisticsQueryReqVO reqVO);
}
